package com.sumainfor.zuul.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.sumainfor.zuul.entity.DeptMenu;
import com.sumainfor.zuul.entity.SysDeptEntity;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 部门管理
 */
@Mapper
public interface SysDeptDao extends BaseMapper<SysDeptEntity> {

    /**
     * 查询子部门ID列表
     *
     * @param parentId 上级部门ID
     */
    List<Integer> queryDetpIdList(Integer parentId);

    /**
     * 获取所有的部门及上级部门
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月20日
     */
    List<Map<String, Object>> getDetpList(Map<String, Object> params);

    /**
     * 获取所有的部门及上级部门总数
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月20日
     */
    Integer getDetpListCount(Map<String, Object> params);

    /**
     * 查询所有部门
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月20日
     */
    List<DeptMenu> getParentDetpList();

    /**
     * 根据 归属公司去查询
     *
     * @return
     */
    List<DeptMenu> getDeptByAreaId(String areaId);

    /**
     * 根据编号获取部门
     *
     * @Description: TODO(这里用一句话描述这个方法的作用)
     * @author zhlu
     * @date 2018年9月21日
     */
    Map<String, Object> getDetpMap(Map<String, Object> params);

    /**
     * 获取子部门
     *
     * @param id
     * @return
     */
    List<SysDeptEntity> getChildDeptByParentId(Integer id);


    /**
     * 根据自身的id 得到上级部门的对象
     *
     * @param id
     * @return
     */
    SysDeptEntity getParentDeptById(Integer id);

    /**
     * 功能描述: 
     * 获取所有的服务中心
     * @Author zhlu
     * @Description //TODO
     * @Date 2019/5/9 17:53
     */
    List<Map<String,Object>>getServiceDeptList();

    /**
     * 根据服务中心编号获取服务中心名称
     * @author zhoucong
     * @data 2019/9/3
     * @Param
     * @return
     *
     */
    List<Map<String,Object>>getDeptNameList(Map<String,Object> params);

}
